
package Datos;

import Negocio.Canton;
import Negocio.Nacionalidad;
import Negocio.Persona;
import Negocio.Provincia;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author Dvid
 */
public class PersonaDB {
    public boolean grabar(Persona persona) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "insert into persona values('"+persona.getNumero()+ "', '"+persona.getNombre()+ "', '"+persona.getApelidos_madre()+ "', '"+persona.getApellidos_padre()+ "', '"+persona.getSexo()+ "', '"+persona.getNacionalidad().getId()+ "', '"+persona.getHuella_digital()+ "', '"+persona.getFecha_nacimiento()+ "', '"+persona.getCanton().getProvincia().getId()+ "', '"+persona.getCanton().getId()+ "', '"+persona.getPadre().getNumero()+ "', '"+persona.getPadre().getCanton().getProvincia().getId()+ "', '"+persona.getPadre().getCanton().getId()+ "', '"+persona.getMadre().getNumero()+ "', '"+persona.getMadre().getCanton().getProvincia().getId()+ "', '"+persona.getMadre().getCanton().getId()+"')";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;
    }
     
  public int modificar(Persona persona) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="update persona set numero='" +persona.getNumero()+ "', nombres ='"+persona.getNombre() + "', apellido_materno ='"+persona.getApelidos_madre()+ "', apellido_paterno ='"+persona.getApellidos_padre()+ "', sexo ='"+persona.getSexo()+ "', id_nacionalidad ='"+persona.getNacionalidad().getId()+ "', huella_digital='"+persona.getHuella_digital()+ "', fecha_nacimiento='"+persona.getFecha_nacimiento()+ "', id_provincia='"+persona.getCanton().getProvincia().getId()+ "', id_canton='"+persona.getCanton().getId()+ "', numero_padre='"+persona.getPadre().getNumero()+ "', id_provincia_padre='"+persona.getPadre().getCanton().getProvincia().getId()+ "', id_canton_padre='"+persona.getPadre().getCanton().getId()+ "', numero_madre'"+persona.getMadre().getNumero()+ "', id_provincia_madre'"+persona.getMadre().getCanton().getProvincia().getId()+ "', id_canton_madre'"+persona.getMadre().getCanton().getId()+ "' where numero='" + persona.getNumero()+"'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
    }
     
    public Persona buscar(String numero) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from persona where numero = '" + numero+"'";        
        ResultSet resultado = db.seleccion(query);
        Persona persona= new Persona();
        Nacionalidad nacionalidad;
        NacionalidadDB nac= new NacionalidadDB(); 
        Provincia provincia;
        ProvinciaDB prov = new ProvinciaDB();
        Canton canton;
        CantonDB can = new CantonDB();
        Persona padre;
        Persona madre;
        PersonaDB perso = new PersonaDB();
       
        if (resultado!=null) {
            if (resultado.next()) {
                persona = new Persona();
                persona.setNumero(resultado.getString("numero"));
                persona.setNombre(resultado.getString("nombres"));
                persona.setApelidos_madre(resultado.getString("apellido_materno")) ;
                persona.setApellidos_padre(resultado.getString("apellido_paterno")); 
                persona.setSexo(resultado.getString("sexo"));
                nacionalidad = nac.buscar(resultado.getString("id_nacionalidad"));
                persona.setNacionalidad(nacionalidad);
                persona.setHuella_digital(resultado.getString("huella_digital"));
                persona.setFecha_nacimiento(resultado.getString("fecha_nacimiento"));
                persona.setSexo(resultado.getString("sexo"));
                canton = can.buscar(resultado.getString("id_canton"));
                persona.setCanton(canton);
                provincia = prov.buscar(resultado.getString("id_provincia"));
                persona.getCanton().setProvincia(provincia);
                padre = perso.buscar(resultado.getString("numero_padre"));
                madre = perso.buscar(resultado.getString("numero_madre"));
                persona.setPadre(padre);
                persona.setMadre(madre);
             
                
                                    
            }
        }
        db.cerrarConexion();
        return persona;
        
    }
}
